iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
Mobile Development

Spring Boot & Android Studio教學系列 第 24

使用Firebase Cloud Messaging在Android上實現即時通知

  • 分享至 

  • xImage
  •  

設定Firebase SDK

首先前往Firebase 控制台,選擇你創建的Firebase專案
接著選擇你要新增到哪個應用程式,這裡我們選擇Android

將安卓套件名稱輸入進去(可以在build.gradle裡面的namespace找到)
應用程式暱稱依個人取名
簽署憑證可以不用填

下載.json放在Android專案裡面

新增Firebase SDK

完成以上步驟就成功將Firebase放入專案中了

新增FirebaseMessagingService

接著,我們要在專案中新增MyFirebaseMessagingService.java去繼承FirebaseMessagingService

完成後按Ctrl+O新增以下兩項

onNewToken

用於處理當新的 FCM token(裝置標記)生成時的情況。每當裝置首次安裝應用程式、重新安裝應用程式、應用程式數據刪除或 FCM token 過期時,都會觸發 onNewToken 方法。

onMessageReceived

用於處理接收到的 FCM 通知訊息。當您的應用程式收到來自 FCM 的通知時,這個方法會被調用,允許您自訂如何處理通知內容。

最後我們要在AndroidManifest.xml中設置這些服務,以便您的應用程式能夠正確地處理 FCM 通知和註冊。

<!-- 放在<application>裡面 -->
<service
    android:name=".MyFirebaseMessagingService" <!-- 您的服務的名稱 -->
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

訊息處理與註冊

public class MyFirebaseMessagingService extends FirebaseMessagingService{
    private static final String TAG = "FirebaseMessagingService";
    @Override
    public void onMessageReceived(@NonNull RemoteMessage message) {
        super.onMessageReceived(message);
        //訊息處理
        Log.e(TAG, message.getNotification().getTitle());
        Log.e(TAG, message.getNotification().getBody());
    }

    @Override
    public void onNewToken(@NonNull String token) {
        super.onNewToken(token);
        //將token列印出來
        Log.e(TAG, "此裝置的token : " + token);
    }
}

這裡分別處理當訊息傳送過來以及token生成時要做什麼事,依自己專案所需設計,目前都現打印出來。
當啟動app時,token就會生成

此token通常要傳給後端去做存取方便之後的訊息傳遞。但這裡就先用手動的方式將它複製起來,拿去做測試。

這裡特別注意你的測試機記得要開網路!!!

測試

將剛剛的token複製起來然後前往Firebase 控制台點選Cloud Messaging

建立廣告活動

點選Firebase通知訊息

將Title與Body打上去,按下傳送測試訊息

將複製的token貼上去後按下測試

這時你的裝置上就會跳出你寫上去的訊息通知

同時

以後端方式傳送訊息

上一篇有教怎麼架設FCM服務端
這裡我們也可以直接用我們的spring boot發送訊息


上一篇
使用 Spring Boot 建置 Firebase 雲端訊息傳遞 (FCM)
下一篇
在Spring Boot中使用HiveMQ MQTT Client實現MQTT通信
系列文
Spring Boot & Android Studio教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言